/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package modlemgooglesvn.modlem_src;

import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.EOFException;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;

/**
 *
 * @author xXx
 */
public class PodzialBinarny {
   protected int[] jakPodzielilo=new int[2];
//     public int[] podzialBinarny(File input,File output1,File output2,String[] najlepszyPodzial) throws IOException{
//    DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream(input)));
//    DataOutputStream dos1 = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(output1)));
//            DataOutputStream dos2 = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(output2)));
   public int[] getSplitCout(){return jakPodzielilo;}
   
    public int[] podzialBinarny(File input,File parameters,File output1,File output2,String[] najlepszyPodzial) throws IOException{
     DataInputStream dis = new DataInputStream(new BufferedInputStream(new FileInputStream(input)));
    DataOutputStream dos1 = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(output1)));
            DataOutputStream dos2 = new DataOutputStream(new BufferedOutputStream(new FileOutputStream(output2)));
            BufferedReader br = new BufferedReader(new FileReader(parameters));
    int ileAtr = Integer.parseInt(br.readLine());
    //System.out.println(ileAtr);
    ArrayList rekord = new ArrayList() ;
    int[] typAtr = new int[ileAtr];
    boolean wiekszemniejsze = false; //jezeli true to rekord ma atr >= od 
    for(int i=0;i<ileAtr;i++){
    
    typAtr[i]= Integer.parseInt(br.readLine());
        
    }
    
    
    //int g=0;
    int i=0;
           while (true) {
              // System.out.println(i);
            try {

                
                if(typAtr[i]==1){
                    if(i== Integer.parseInt(najlepszyPodzial[0])){      
                        int intt = dis.readInt();
                        if(intt>=Integer.parseInt(najlepszyPodzial[1])){
                        wiekszemniejsze=true;
                        rekord.add(intt);
                      //  System.out.println(intt);
                        }
                        else {wiekszemniejsze = false;
                        
                        rekord.add(intt);
                        }
                    }
                    else{
                    int intt = dis.readInt();
                    rekord.add(intt);
                    //System.out.println(intt);
                    }
                }
                else if(typAtr[i]==2){
                    if(i== Integer.parseInt(najlepszyPodzial[0])){ 
                        double db = dis.readDouble();
                        if(db>=Double.parseDouble(najlepszyPodzial[1])){
                        wiekszemniejsze=true;
                        rekord.add(db);
                        //System.out.println(db);
                        }
                        
                        else {wiekszemniejsze=false;
                        rekord.add(db);
                        }
                    }
                    else {
                        double db = dis.readDouble();
                    rekord.add(db);
                  //  System.out.println(db);
                }
                }
                else if(typAtr[i]==3){
                              if(i== Integer.parseInt(najlepszyPodzial[0])){ 
                        String st = dis.readUTF();
                        if(st.equals(najlepszyPodzial[1])){
                        wiekszemniejsze=true;
                        rekord.add(st);
                       // System.out.println(st);
                        }
                        else{ wiekszemniejsze=false;
                        rekord.add(st);
                        }
                    }
                    else {
                        String st = dis.readUTF();
                    rekord.add(st);
                   // System.out.println(st);
                }
                    
                }
                else System.out.print("Jakis error w PodzialBinarny");
                
//


          i++;
          
if(i>=ileAtr){
// for(int k = 0 ;k<rekord.size();k++) {
//    System.out.println(rekord.get(k)+ " " + typAtr[k]);
// }
// System.out.println(rekord.size()+ " " + ileAtr);
  //  if(rekord.size()==ileAtr){
if(wiekszemniejsze==true){

              for(int k = 0 ;k<ileAtr;k++) {
            

                
                if(typAtr[k]==1){
                     dos1.writeInt(Integer.parseInt(rekord.get(k).toString()));
                }
                else if(typAtr[k]==2){
       
                dos1.writeDouble((Double.parseDouble(rekord.get(k).toString())));
                }
                else if(typAtr[k]==3){
             dos1.writeUTF(rekord.get(k).toString());
                    
                }
                else System.out.print("Jakis error w PodzialBinarny");
                
               }
     jakPodzielilo[0]++;      
}
else
{
    
//    for(int j = 0;j<rekord.size();j++){
//    System.out.println(rekord.get(j));
//     System.out.println(typAtr[j]);
//    
//    }
    
                  for(int k = 0;k<ileAtr;k++) {///////////////////////////////////////DO PRZEROBIENIA ZEBY ZAPISYWALO DO PLIKU!!!!!!
            

                
                if(typAtr[k]==1){
                 //   System.out.println(rekord.get(k)+ " " + typAtr[k]);
                    String s = rekord.get(k).toString();
                    dos2.writeInt(Integer.parseInt(s));
                }
                else if(typAtr[k]==2){
  //    System.out.println(rekord.get(k)+ " " + typAtr[k]);
                    String s = rekord.get(k).toString();
                dos2.writeDouble((Double.parseDouble(s)));
                }
                else if(typAtr[k]==3){
                  // System.out.println(rekord.get(k)+ " " + typAtr[k]);
                    String s = rekord.get(k).toString();
             dos2.writeUTF(s);
                    
                }
                else System.out.print("Jakis error w PodzialBinarny");


               }
               

jakPodzielilo[1]++;
    }
   
    
       // jakPodzielilo++;;
//System.out.println(jakPodzielilo);
    
    //}
    wiekszemniejsze=false;

i=0;
//System.out.println(g);
rekord.clear();
}                 

                
                
                      
            } catch (EOFException e) {
    dos1.flush();
    dos1.close();
    dos2.flush();
    dos2.close();
                break;
            }
//            catch(NumberFormatException e){
//               // System.out.println("Error" + g);
//              //  i++;
//                
//          if(i>=ileAtr)i=0;
//            }
            
       
            
            

        }
    dos1.flush();
    dos1.close();
    dos2.flush();
    dos2.close();
    System.out.println(jakPodzielilo[0]+" "+ jakPodzielilo[1]);
    return jakPodzielilo;
    }
    
}

